// 包含  <>系统头文件包：gcc自带的c语言头文件       .h：header 头文件
#include <stdio.h>    //   standard    input   output ： 标准输入输出流头文件
//功能：输入和输出  


int main()  // main函数是所有程序的入口，一个程序只能有一个main函数
{  
    //main函数程序主体（程序要干什么）
    
    //printf("i am a student\n");
    //会把双引号""括出来的数据输出到终端上
    // \n：代表的是在输出的末尾加一个换行符
    
    //变量：在计算机中占用内存，值可以改变的量
    //数据类型
    //关键字：由c语言内部定义的一些含有特殊功能和意义的单词
    // int类型：有符号整型：整数（包含负数）    所占内存大小4个字节
    // unsigned int ： 无符号整型   
    //int a; //定义一个变量  
    //a=10;//赋值语句  把 "10" 的值给到 "a"
    
    //unsigned int a;
    //printf("%u\n",sizeof(a));

    //short a;//short：短整型（2个字节）
    //long a;//长整型（8个字节）
    //printf("%ld\n",sizeof(a));
    //sizeof：计算一个内存的大小  字节
    //%ld：以长整型的形式输出一个数据
    
    //%d: 以有符号整型的形式输出一个数据
    //printf("%ld\n",sizeof(a)); 
    //printf("%d\n",a);
    // char类型：
    


    // 有符号字符型   '字符'  字符用单引号''括出来
    //char a =  'a';
    // %c : 输出一个字符
    //printf ("%ld\n",sizeof(a));
    //printf ("%c\n",a);
    



    //数据类型的本质：内存大小不同 
    //char a = 97;
    //int b = a;  //数据类型的   宽转换   ：  小内存数据类型转大内存数据类型   安全
    
    //int b = 130;
    //char a = b;
    
    //printf ("%d\n",a);
    

    // 浮点型数据
    // 计算机中的小数大部分都是近似值   包括0.1  0.2  0.3 
    // 计算机中的小数不能比较相等的   只做大小判断

    // 单精度浮点型 占4个字节
    //float a;
    //a = 3.1415926;
    //%f以浮点的形式输出   默认保留6 位小数       %.2f 可以只保留两位小数  会对小数进行四舍五入操作
    //printf("%f %ldd\n",a,sizeof(a));


    // 双精度浮点型   占8个字节
    double a;
    a = 3.14159;
    // lf 双精度格式输出  
    printf ("%.2lf %ld\n",a, sizeof(a));
    
    //long double a;
    //printf ("%.2lf %ld\n",a, sizeof(a));
    // int short  long  char float  double 
    
    //unsigned ：无符号关键字  每个基本类型前都可以加
    
    // long double 有16字节 其他不变 

    return 0;// 程序的返回值
}
